const fp = require('lodash/fp')
//horsePower:马力，dollar_value：价格，in_stock：库存
const cars = [
  {
    name:'Ferrari FF',
    horsePower:660,
    dollar_value:70000,
    in_stock:true
  },
  {
    name:'Spyker C12 Zagato',
    horsePower:650,
    dollar_value:648000,
    in_stock:false
  },
  {
    name:'Jaguar XKR-S',
    horsePower:550,
    dollar_value:132000,
    in_stock:false
  },
  {
    name:'Audi R8',
    horsePower:525,
    dollar_value:114200,
    in_stock:false
  },
  {
    name:'Aston Martin One-77',
    horsePower:750,
    dollar_value:1850000,
    in_stock:true
  },
  {
    name:'Pagani Huayra',
    horsePower:700,
    dollar_value:1300000,
    in_stock:false
  },
]

//练习一
let isLastInStock = fp.flowRight(fp.prop('in_stock'),fp.last)
console.log(isLastInStock(cars));

//练习二
let isFirstName = fp.flowRight(fp.prop('name'),fp.first)
console.log(isFirstName(cars));

//练习三
let _average = function (xs){
  return fp.reduce(fp.add,0,xs)/xs.length
}
let dollar_values = function(arr){
  return fp.map(function(car){
    return car.dollar_value
  },arr)
}
let averageDollarValue = fp.flowRight(_average,dollar_values)
console.log(averageDollarValue(cars));

// 练习四
let _underscore = fp.replace(/\W+/g,'_')
let test =function(a){
  console.log(a)
}
let sanitizeNames = fp.flowRight(fp.map(_underscore),fp.map(fp.toLower))
console.log(sanitizeNames(['Hello World']));